package com.hlkj.pay.vo.common.resp;

import com.hlkj.pay.vo.BaseMerchantResp;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

/**
 * @author monk@techsun.com
 * @date 2023/04/21 14:10
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class MessageRecordResp extends BaseMerchantResp {

    /**
     * message id 用于与message 服务交互 uuid 生成
     */
    @Schema(description = "messageId")
    private String  messageId;


    /**
     * 消息类型为短信时，存手机号码；邮件时存E-mail，微信时存Openid
     */
    @Schema(description = "消息类型为短信时，存手机号码；邮件时存E-mail，微信时存Openid")
    private String  receiver;

    /**
     * 消息类型：0-国内短信，1-国际/港澳台短息，2-邮件，3-微信
     * @see TemplateEnum.TEMPLATE_TYPE
     */
    @Schema(description = "消息类型：0-国内短信，1-国际/港澳台短息，2-邮件，3-微信")
    private Integer templateType;

    /**
     * 模板id
     */
    @Schema(description = "templateCode")
    private String  templateCode;

    /**
     * 模板id
     */
    @Schema(description = "templateName")
    private String  templateName;
    @Schema(description = "业务类型")
    private Integer           businessType;
    /**
     * 多语言模板编码
     */
    @Schema(description = "多语言模板编码")
    private String  templateLanguageCode;
    /**
     * 多语言模板编码
     */
    @Schema(description = "language")
    private String  language;
    /**
     * 发送时间
     */
    @Schema(description = "发送时间")
    private Long    sendTime;

    /**
     * 发送时间类型 1：立即发送 2：定时发送
     * @see MessageEnum.SEND_TIME_TYPE
     */
    @Schema(description = "发送时间类型 1：立即发送 2：定时发送")
    private Integer sendTimeType;

    /**
     * 模板参数
     */
    @Schema(description = "模板参数")
    private String  templateParameter;

    /**
     * 发送状态：1-待提交；2-提交中；3-提交成功；4-提交失败；5-发送失败；6-发送失败
     * @see MessageEnum.STATUS
     */
    @Schema(description = "发送状态：1-待提交；2-提交中；3-提交成功；4-提交失败；5-发送失败；6-发送失败")
    private Integer status;

    /**
     * 备注
     */
    @Schema(description = "备注")
    private String  remark;

    /**
     * 备注
     */
    @Schema(description = "message")
    private String  message;

}
